package cn.edu.sdyu.ie.crs.service;

import cn.edu.sdyu.ie.crs.common.response.LabelValue;
import cn.edu.sdyu.ie.crs.domain.Assignment;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.util.List;
import java.util.Locale;

@Service
public interface AssignmentService {

    /**
     * 查询所有分配信息
     * @return
     */
    List<Assignment> findAll();

    /**
     *
     * @param page 页码
     * @param pageSize 分页大小
     * @return
     */
    Page<Assignment> findByPage(Integer page, Integer pageSize);

    /**
     * 根据分配ID查询分配信息
     * @param id 教室Id
     * @return
     */
    Assignment findAssignmentById(Integer id);

    /**
     * 保存分配信息
     * @param assignment 分配对象
     */
    void saveAssignment(Assignment assignment);

    /**
     * 根据分配ID删除分配信息
     * @param id
     */
    void deleteAssignmentById(Integer id);

    /**
     * 按执行日期统计分配信息
     * @return
     */
    List<LabelValue> countGroupByExecutionDateBetween(LocalDate startDate, LocalDate endDate);

    /**
     * 查询当前用户可用分配
     * @return
     */
    List<Assignment> findAvailableAssignments(String user);

}
